﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Reflection;

namespace Idlesoft.Utils
{
	//public delegate void OnEventHandler(object sender, EventArgs e);
	/// <summary>
	/// This is the interface to describe all apps made inside of VT.
	/// </summary>
	public interface IBaseApp
	{
		#region properties
		//Level LoggerThreshold { get; }
		//bool IsBufferingEnabled { get; }
		int ExitCode { get; }
		string LoggerFilename { get; }
		string[] CommandlineArgs { get; }
		#endregion properties

		#region methods
		/// <summary>
		/// Init is used to initialize values for the app.
		/// </summary>
		/// <param name="inArgs"></param>
		void Init(string[] inCommandlineArgs);
		/// <summary>
		/// Run is used for the body of the app to execute all of the tasks.
		/// </summary>
		void Run();
		/// <summary>
		/// End is used for the cleanup process of the app.
		/// </summary>
		void End();
		#endregion methods

		//#region events
		//event OnEventHandler OnInitEvent;
		//event OnEventHandler OnRunEvent;
		//event OnEventHandler OnEndEvent;
		//#endregion events
	}
}